package com.xbongbong.pro.message.tool;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.util.StringUtil;
import com.xbongbong.pro.message.constant.MessageConstants;

import java.util.Map;
import java.util.Set;
/**
 * Description:  消息格式转换
 * @author 李杰
 * @date 2019/1/10 16:56
 * @version
 * @since
 * Modified by:
 */

/**
 * MessageFormat
 *
 * @author GuoJun.HU
 * @since V1.0
 * @date 2019/2/19 10:44
 */
public class MessageFormat {

    /**
     * Description: 转换消息内容格式
     * @param message
     * @return java.lang.String
     * @throws
     * @author 李杰
     * @date 2019/1/10 17:01
     * @version
     * @since
     * Modified by:
     */
    public static String formatMessageContent(String message) {
        JSONObject msg = JSON.parseObject(message);
        if (!msg.containsKey(MessageConstants.MESSAGE_FORMAT_CONTENT) || StringUtil.isEmpty((String) msg.get(MessageConstants.MESSAGE_FORMAT_CONTENT))) {
            // 有可能有put进入content，但对应的value值是空的
            StringBuilder content = new StringBuilder();
            Set<Map.Entry<String, Object>> set = msg.entrySet();
            for (Map.Entry<String, Object> entry : set) {
                String key = entry.getKey();
                if (!"text".equals(key) && !"title".equals(key) && !"messageUrl".equals(key) && !"pcMessageUrl".equals(key) && !"start".equals(key) && !"end".equals(key) && !"content".equals(key)) {
                    content.append(key).append(entry.getValue().toString()).append("；");
                }
            }
            msg.put(MessageConstants.MESSAGE_FORMAT_CONTENT, StringUtil.isEmpty(content.toString()) ? "" : content.substring(0, content.length() - 1));
        }
        return JSON.toJSONString(msg);
    }
}
